import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class Receive {
    public static void main(String[] args) throws IOException {
        //接受数据
        //在接受数据的时候,一定要绑定端口
        //而且绑定的端口一定要跟发送的端口保持一致
        DatagramSocket ds=new DatagramSocket(10086);

        //2.接受数据包
        byte[]bytes=new byte[1024];
        DatagramPacket dp=new DatagramPacket(bytes,bytes.length);

        System.out.println(111);
        ds.receive(dp);//该方法是阻塞的,程序执行到这一步的时候,会在这里死等,等待发送端发送消息
        System.out.println(222);

        //3.解析数据包
        byte[]data=dp.getData();
        int len=dp.getLength();
        InetAddress address=dp.getAddress();
        int port=dp.getPort();
        System.out.println("接收到的数据"+new String(data,0,len));
        System.out.println("该数据是从"+address+"这台电脑中"+port+"这个端口发出的");

        //4.释放数据
        ds.close();
    }
}
